// 下拉数据分页加载
import Vue from 'vue'
const selectLoadmore = Vue.directive('select-loadmore', {
    bind (el, binding) {
        const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap')
        SELECTWRAP_DOM && SELECTWRAP_DOM.addEventListener('scroll', function () {
            /**
             * scrollHeight 获取元素内容高度(只读)
             * scrollTop 获取或者设置元素的偏移值,常用于, 计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0.
             * clientHeight 读取元素的可见高度(只读)
             * 如果元素滚动到底, 下面等式返回true, 没有则返回false:
             * ele.scrollHeight - ele.scrollTop === ele.clientHeight;
             */
            let { key, labelKey, data } = binding.value
            let inputDom = el.querySelector('input')
            let keyWord = inputDom.value
            const condition = this.scrollHeight - this.scrollTop <= this.clientHeight
            if (condition) {
                // console.log(binding.value, 'binding.value')
                binding.value.callback(key, keyWord, labelKey, data)
            }
        })
    },
    // 表示dom插入到页面上的时候自动执行
    // 这些函数都有两个参数，一个是el(使用自定义指令的元素), 一个是binding(记录自定义指令信息的对象)
    inserted (el, binding) {
        el.focus()
    },
    // 表示自定义指令后面的值更新的时候，自动执行
    update (el, binding) {
    }
})

export { selectLoadmore }
